package com.nodecollege.cloud.service;

import com.nodecollege.cloud.common.model.NCResult;
import com.nodecollege.cloud.common.model.QueryVO;
import com.nodecollege.cloud.common.model.po.UpmsAdmin;
import com.nodecollege.cloud.common.model.vo.LoginVO;

/**
 * 管理员service
 *
 * @author LC
 * @date 2019/11/27 19:36
 */
public interface AdminService {

    /**
     * 查询管理员列表
     *
     * @param query
     * @return
     */
    NCResult<UpmsAdmin> getAdminList(QueryVO<UpmsAdmin> query);

    /**
     * 新增管理员
     *
     * @param loginVO
     */
    UpmsAdmin addAdmin(LoginVO loginVO);

    /**
     * 更新管理员信息
     *
     * @param upmsAdmin
     */
    void updateAdmin(UpmsAdmin upmsAdmin);

    /**
     * 修改密码
     *
     * @param account   管理员账号
     * @param oldPassword   旧密码
     * @param newPassword   新密码
     */
    void updateAdminPassword(String account, String oldPassword, String newPassword, String cert);

    /**
     * 根据账号获取用户信息
     *
     * @param account
     */
    UpmsAdmin getAdminByAccount(String account);

    /**
     * 删除管理员
     *
     * @param id
     */
    void delAdmin(Long id);

    /**
     * 冻结/解冻管理员
     * @param upmsAdmin
     */
    void lockAdmin(UpmsAdmin upmsAdmin);

    /**
     * 重置管理员密码
     * @param admin
     */
    void resetPwd(UpmsAdmin admin);
}
